\hypertarget{index_README}{}\section{R\+E\+A\+D\+ME}\label{index_README}
\begin{DoxyParagraph}{Documentation}

\begin{DoxyItemize}
\item Please use this link for Documentation and this R\+E\+A\+D\+ME 
\end{DoxyItemize}
\end{DoxyParagraph}
\begin{DoxySeeAlso}{See also}
\href{https://rawgit.com/magore/esp8266_ili9341/master/doxygen/html/index.html}{\tt https\+://rawgit.\+com/magore/esp8266\+\_\+ili9341/master/doxygen/html/index.\+html} 
\end{DoxySeeAlso}
\begin{DoxyParagraph}{Copyright}

\begin{DoxyItemize}
\item See \hyperlink{md_COPYRIGHT}{C\+O\+P\+Y\+R\+I\+G\+HT.md} for a full copyright notice for the project 
\end{DoxyItemize}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}

\begin{DoxyItemize}
\item E\+S\+P8266 support libraries
\begin{DoxyItemize}
\item All of the code in this project, except where noted is written by me
\item Analog Devices A\+D\+F4351 Wideband Synthesizer driver and test code
\begin{DoxyItemize}
\item Control is via serial terminal that works while the other demos run
\item adf4351 123456000 10000
\begin{DoxyItemize}
\item Frequency, and channel spacing used in calculations
\end{DoxyItemize}
\item adf4351\+\_\+scan 144e6 145e6 10000
\begin{DoxyItemize}
\item start frequency, end frequency, channel spacing
\end{DoxyItemize}
\end{DoxyItemize}
\item I\+L\+I9341 display driver
\begin{DoxyItemize}
\item Multiple custom size windows
\item Custom fonts
\item Window scrolling
\item read\+Pixel() function supported
\item The specific display this was tested on is a T\+M022\+H\+D\+H26 display I got from e\+Bay.
\item Not limited by I\+L\+I9341 hardware scroll restrictions.
\end{DoxyItemize}
\item xpt2046 touch controller
\begin{DoxyItemize}
\item filtered read of XY
\item debounced key press read of queued events
\item 5 point calibration routines
\end{DoxyItemize}
\item B\+DF F\+O\+NT compiler tools and fonts sets
\begin{DoxyItemize}
\item Tools to creates C code used in the display drivers
\end{DoxyItemize}
\item Wireframe Viewer
\begin{DoxyItemize}
\item Code generator for Earth coastline data
\item I created two wireframe demos
\begin{DoxyItemize}
\item Cube wireframe dataset
\item Earth coastline dataset -\/ wireframe view still needs hidden line removal option
\end{DoxyItemize}
\end{DoxyItemize}
\item C\+O\+R\+D\+IC C code generator and 3D transformation code support functions use by wireframe viewer code
\item Small P\+R\+I\+N\+TF with full floating point support -\/ much smaller then G\+NU full version along
\item Additional number IO functions, A\+T\+OF etc
\item W\+EB server using SD C\+A\+RD with C\+GI processing -\/ files and C\+GI results can be A\+NY S\+I\+Z\+E!
\begin{DoxyItemize}
\item Example web site for testing
\item W\+EB server can update T\+FT display
\begin{DoxyItemize}
\item Simple door sign status update using web page -\/ see html/msg.\+cgi and \hyperlink{web_8c}{web/web.\+c} for code
\end{DoxyItemize}
\end{DoxyItemize}
\item Network server client example for display updates
\item Uart network server client for serial uart to Network Bridge.
\item Generic queue handling code
\item E\+S\+P8266 support for Fat\+FS by ChaN 2016
\begin{DoxyItemize}
\item SD card and micro\+SD support
\end{DoxyItemize}
\item P\+O\+S\+IX wrappers for Fat\+FS -\/ provides U\+N\+I\+X/\+L\+I\+N\+UX file I/O operations
\item P\+O\+S\+IX time functions and R\+TC set with N\+TP
\item Multiple timers used by R\+TC and time functions
\item H\+S\+PI code that can handle multiple devices each with varying clock frequencies
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Credits}

\begin{DoxyItemize}
\item Project compiles using E\+SP Open S\+DK -\/ or esp8266-\/devkit by C\+H\+E\+R\+TS 
\end{DoxyItemize}
\end{DoxyParagraph}
\begin{DoxySeeAlso}{See also}
\href{https://github.com/pfalcon/esp-open-sdk}{\tt https\+://github.\+com/pfalcon/esp-\/open-\/sdk} 

\href{https://github.com/CHERTS/esp8266-devkit}{\tt https\+://github.\+com/\+C\+H\+E\+R\+T\+S/esp8266-\/devkit}
\begin{DoxyItemize}
\item Display drivers from third parties A few of the display driver functions are from the Adafruit G\+FX Library 
\end{DoxyItemize}

\href{https://github.com/adafruit/Adafruit-GFX-Library}{\tt https\+://github.\+com/adafruit/\+Adafruit-\/\+G\+F\+X-\/\+Library} Optimized Line drawing function and Makefile from C\+H\+E\+R\+TS 

\href{https://github.com/CHERTS/esp8266-devkit/tree/master/Espressif/examples/esp8266_ili9341}{\tt https\+://github.\+com/\+C\+H\+E\+R\+T\+S/esp8266-\/devkit/tree/master/\+Espressif/examples/esp8266\+\_\+ili9341}
\begin{DoxyItemize}
\item Font sources\+: 
\end{DoxyItemize}

\href{https://www.gnu.org/software/freefont/}{\tt https\+://www.\+gnu.\+org/software/freefont/} 

\href{https://www.rockbox.org}{\tt https\+://www.\+rockbox.\+org} 

\href{http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html}{\tt http\+://www.\+cl.\+cam.\+ac.\+uk/$\sim$mgk25/ucs-\/fonts.\+html} 

\href{http://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format}{\tt http\+://en.\+wikipedia.\+org/wiki/\+Glyph\+\_\+\+Bitmap\+\_\+\+Distribution\+\_\+\+Format} 

\href{https://partners.adobe.com/public/developer/en/font/5005.BDF_Spec.pdf}{\tt https\+://partners.\+adobe.\+com/public/developer/en/font/5005.\+B\+D\+F\+\_\+\+Spec.\+pdf}
\begin{DoxyItemize}
\item Vector \hyperlink{bdffontutil_8h_a6d9c6f27190f0f04abf55678fe81080d}{font} code  https\+: \href{https://github.com/donbright/font_to_svg}{\tt https\+://github.\+com/donbright/font\+\_\+to\+\_\+svg}
\item Vector fonts  \href{https://www.gnu.org/software/freefont}{\tt https\+://www.\+gnu.\+org/software/freefont}
\item Fat\+FS code is by ChaN\+: 
\end{DoxyItemize}

\href{http://elm-chan.org/fsw/ff/00index_e.html}{\tt http\+://elm-\/chan.\+org/fsw/ff/00index\+\_\+e.\+html}
\begin{DoxyItemize}
\item Yield Code extracted from \hyperlink{cpu_8h_af917fb5672b9339e228304f59f3b250a}{E\+S\+P8266} Arduino Project 
\end{DoxyItemize}

\href{https://github.com/esp8266/Arduino}{\tt https\+://github.\+com/esp8266/\+Arduino} 


\end{DoxySeeAlso}
\begin{DoxyParagraph}{Directories}

\begin{DoxyItemize}
\item Files
\begin{DoxyItemize}
\item \hyperlink{COPYRIGHT_8md}{C\+O\+P\+Y\+R\+I\+G\+H\+T.\+md} -\/ Project Copyright file
\item Doxyfile -\/ Doxygen configuration file
\item display.\+jpg -\/ image of the ili9341 display while the software is running
\item doit -\/ bash script that compiles and uploads firmware then starts miniterm
\item doxyfile.\+inc -\/ automatically created file lists directories to search for documentation
\item header -\/ common include header that can be used by user C files
\item get\+\_\+esp-\/open-\/sdk -\/ shell script to download / compile and install the current version of E\+SP O\+P\+EN S\+DK
\begin{DoxyItemize}
\item This project is now using versions 2.\+0.\+0 of the S\+DK
\item Tested on Ubuntu 16.\+04.\+1 and Ubuntu 14.\+04.\+5
\item Installs under /opt/\+Expressif/esp-\/open-\/sdk
\end{DoxyItemize}
\item get\+\_\+esptool -\/ downloads the latest version of esptool -\/ required for this project
\item header -\/ example C headers required for C programs in this project
\item Makefile from C\+H\+E\+R\+TS modified for the project
\begin{DoxyItemize}
\item Features are all controlled by variables in Makefile
\item Note the Makefile downloads the latest esptool automatically so it is no longer includd here
\end{DoxyItemize}
\item meminfo.\+sh -\/ displays current R\+AM usage for the project
\begin{DoxyItemize}
\item Example\+: ./meminfo.sh build/demo.\+elf
\end{DoxyItemize}
\item miniterm -\/ shell script to launch terminal to 115200 baud Defaults to /dev/tty\+U\+S\+B0 115200
\item R\+E\+A\+D\+M\+E.\+md -\/ Project readme file
\begin{DoxyItemize}
\item Tested with E\+S\+P8266\+\_\+\+N\+O\+N\+O\+S\+\_\+\+S\+D\+K\+\_\+\+V2.\+0.\+0\+\_\+16\+\_\+08\+\_\+10, 1 Nov 2016
\end{DoxyItemize}
\item \hyperlink{send_8c}{send.\+c}
\begin{DoxyItemize}
\item Send message to network server
\item Example\+: ./send -\/i 192.\+168.\+200.\+116 -\/m \textquotesingle{}\textquotesingle{}
\begin{DoxyItemize}
\item These escape characters are processed on the display\+: ~\newline
, , 
\end{DoxyItemize}
\end{DoxyItemize}
\item setpath -\/ set the current environment for the S\+DK and tools
\begin{DoxyItemize}
\item Example\+: . setpath
\end{DoxyItemize}
\item \hyperlink{testflash_8c}{testflash.\+c}
\begin{DoxyItemize}
\item Create and read a test pattern filled file for flash testing
\end{DoxyItemize}
\item video.\+mp4
\begin{DoxyItemize}
\item Video of ili9341 display with web server C\+GI updating the display
\end{DoxyItemize}
\end{DoxyItemize}
\item Eclipse Project files and Directories
\begin{DoxyItemize}
\item Change .settings/language.\+settings.\+xml
\item .cproject
\item .project
\item .settings
\begin{DoxyItemize}
\item .settings/language.\+settings.\+xml
\begin{DoxyItemize}
\item Contains path to cross compiler for indexing -\/ matches assumptions in S\+DK installer script\+: get\+\_\+esp-\/open-\/sdk
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\item Directories
\begin{DoxyItemize}
\item adf4351 -\/ Analog Devices A\+D\+F4351 Wideband Synthesizer with Integrated V\+CO driver
\begin{DoxyItemize}
\item adf4351.\+c
\item adf4351.\+h
\begin{DoxyItemize}
\item Main A\+D\+F4351 interface code
\end{DoxyItemize}
\item adf4351\+\_\+cmd.\+c
\item adf4351\+\_\+cmd.\+h
\begin{DoxyItemize}
\item User interface and frequency scanning task
\end{DoxyItemize}
\item adf4351\+\_\+hal.\+c
\item adf4351\+\_\+hal.\+h
\begin{DoxyItemize}
\item Hardware Abstraction layer
\end{DoxyItemize}
\end{DoxyItemize}
\item bridge -\/ Serial bridge code -\/ send and receive serial data via network
\begin{DoxyItemize}
\item bridge.\+c
\item bridge.\+h
\begin{DoxyItemize}
\item Opens a port on port 23 so you can use telnet to test
\begin{DoxyItemize}
\item Note\+: at the moment no telnet command processing is done.
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyParagraph}

\begin{DoxyItemize}
\item cordic -\/ C\+O\+R\+D\+IC function -\/ a very fast method to do 2\+D/3D trig conversions
\begin{DoxyItemize}
\item \hyperlink{cordic_8c}{cordic.\+c}
\item \hyperlink{cordic_8h}{cordic.\+h}
\begin{DoxyItemize}
\item My 3D transformation functions are based on C\+O\+R\+D\+IC and gradians/100
\item 1 = 90degrees so the integer part reflects the quadrant
\end{DoxyItemize}
\item \hyperlink{cordic2c__inc_8h}{cordic2c\+\_\+inc.\+h}
\begin{DoxyItemize}
\item C\+O\+R\+D\+IC lookup tables generated with my program cordic2c
\item 1 = 90degrees so the integer part reflects the quadrant
\end{DoxyItemize}
\item make\+\_\+cordic
\begin{DoxyItemize}
\item \hyperlink{cordic2c_8c}{cordic2c.\+c}
\begin{DoxyItemize}
\item My customized C\+O\+R\+D\+IC code, C\+O\+R\+D\+IC table generating tools
\item Creates fixed point tables where 1 = 90degrees
\begin{DoxyItemize}
\item The integer part reflects the quadrant
\end{DoxyItemize}
\item Based on work by P. Knoppers, 13-\/\+Apr-\/1992.
\end{DoxyItemize}
\item Makefile
\begin{DoxyItemize}
\item Make and test C\+O\+R\+D\+IC tables
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\item display -\/ My mostly rewritten ili9341 display driver with multiple window support and scrolling
\begin{DoxyItemize}
\item Depends on a few modified Adafruit functions under directory driver
\begin{DoxyItemize}
\item \hyperlink{font_8c}{font.\+c}
\item font.\+h
\begin{DoxyItemize}
\item My Fixed and proportional font display code
\end{DoxyItemize}
\item \hyperlink{fonts_8h}{fonts.\+h}
\begin{DoxyItemize}
\item Font data structures created via the B\+DF converter -\/ see fonts directory
\end{DoxyItemize}
\item \hyperlink{ili9341_8c}{ili9341.\+c}
\item \hyperlink{ili9341_8h}{ili9341.\+h}
\begin{DoxyItemize}
\item multiple window support
\item read\+Pixel() works on most all 4 wire displays now
\item scrolling window support
\item Optimized line drawing function is from C\+H\+E\+R\+TS
\begin{DoxyItemize}
\item Non optimized version is also supplied that I wrote in 1984
\end{DoxyItemize}
\end{DoxyItemize}
\item \hyperlink{ili9341__hal_8c}{ili9341\+\_\+hal.\+c}
\item ili9341\+\_\+hal.\+h
\begin{DoxyItemize}
\item Display hardware abstraction layer
\end{DoxyItemize}
\item \hyperlink{tft__printf_8c}{tft\+\_\+printf.\+c}
\item \hyperlink{tft__printf_8h}{tft\+\_\+printf.\+h}
\begin{DoxyItemize}
\item Printf interface to display library \hyperlink{tft__printf_8c_ad6d6dda4facdc045d477c0cc9403e0c1}{tft\+\_\+printf()}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}

docs -\/ ili9431 and esp8266 related documents


\begin{DoxyItemize}
\item 3rd\+\_\+party -\/ third party code
\begin{DoxyItemize}
\item \hyperlink{cal__dex_8c}{cal\+\_\+dex.\+c}
\begin{DoxyItemize}
\item Debug exception support by cal (20150421, cal)
\end{DoxyItemize}
\item \hyperlink{ili9341__adafruit_8c}{ili9341\+\_\+adafruit.\+c}
\item \hyperlink{ili9341__adafruit_8h}{ili9341\+\_\+adafruit.\+h}
\begin{DoxyItemize}
\item Adafruit display -\/ just those remaining functions that I have not rewritten
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}

earth -\/ Earth coast line data and display code
\begin{DoxyItemize}
\item Still need to add hidden vector removal
\begin{DoxyItemize}
\item 00\+R\+E\+A\+D\+M\+E.\+txt
\begin{DoxyItemize}
\item Article on coordinate transforms from stackoverflow by Daphna Shezaf
\end{DoxyItemize}
\item \hyperlink{earth2wireframe_8c}{earth2wireframe.\+c}
\begin{DoxyItemize}
\item Create C structure wire-\/frame coastline data
\item This code could be easily adapted for any kind of wire-\/frame
\end{DoxyItemize}
\item Makefile
\begin{DoxyItemize}
\item \hyperlink{earth__data_8h}{earth\+\_\+data.\+h} from Coastline L\+A\+T/\+L\+O\+NG pairs
\end{DoxyItemize}
\item data -\/ Coastline data at various resolutions
\begin{DoxyItemize}
\item world.\+dat
\item world\+\_\+10m.\+txt
\item world\+\_\+110m.\+txt
\item world\+\_\+50m.\+txt
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}

esp8266 -\/ E\+S\+P8266 specific code
\begin{DoxyItemize}
\item bits’
\item couch
\item Debugging printf wrapper
\begin{DoxyItemize}
\item debug’s
\item debug’s
\end{DoxyItemize}
\item Flash read, Bittest functions, For systems requiring specific memory alignment access methods
\begin{DoxyItemize}
\item \hyperlink{flash_8c}{flash.\+c}
\item \hyperlink{flash_8h}{flash.\+h}
\end{DoxyItemize}
\item My rewritten H\+P\+SI code that avoids unaligned read and writes (based on code ideas from C\+H\+E\+R\+TS and Sem)
\begin{DoxyItemize}
\item \hyperlink{hspi_8c}{hspi.\+c}
\item \hyperlink{hspi_8h}{hspi.\+h}
\end{DoxyItemize}
\item Chip select, addressing code and spi abstraction layer for all devices
\begin{DoxyItemize}
\item \hyperlink{hal_8c}{hal.\+c}
\item \hyperlink{hal_8h}{hal.\+h}
\end{DoxyItemize}
\item R\+TC D\+S1307 code in progress
\begin{DoxyItemize}
\item \hyperlink{rtc_8c}{rtc.\+c}
\item \hyperlink{rtc_8h}{rtc.\+h}
\end{DoxyItemize}
\item P\+O\+S\+IX malloc, calloc, free wrappers and reset functions
\begin{DoxyItemize}
\item \hyperlink{system_8c}{system.\+c}
\item \hyperlink{system_8h}{system.\+h}
\end{DoxyItemize}
\item Serial I/O Interrupt driven receive and transmit code
\begin{DoxyItemize}
\item \hyperlink{uart_8c}{uart.\+c}
\item \hyperlink{uart_8h}{uart.\+h}
\item uart\+\_\+register.\+h
\end{DoxyItemize}
\end{DoxyItemize}

fatfs -\/ R0.\+12b Fat\+FS code from (C)ChaN, 2016
\begin{DoxyItemize}
\item with minimal changes for E\+S\+P8266
\begin{DoxyItemize}
\item 00history.\+txt
\item 00readme.\+txt
\item \hyperlink{ff_8c}{ff.\+c}
\item \hyperlink{ff_8h}{ff.\+h}
\item \hyperlink{ffconf_8h}{ffconf.\+h}
\item \hyperlink{integer_8h}{integer.\+h}
\item option
\begin{DoxyItemize}
\item \hyperlink{cc932_8c}{cc932.\+c}
\item \hyperlink{cc936_8c}{cc936.\+c}
\item \hyperlink{cc949_8c}{cc949.\+c}
\item \hyperlink{cc950_8c}{cc950.\+c}
\item \hyperlink{ccsbcs_8c}{ccsbcs.\+c}
\item \hyperlink{syscall_8c}{syscall.\+c}
\item \hyperlink{unicode_8c}{unicode.\+c}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}

fatfs.\+hal -\/ My updated Fat\+FS hardware abstraction layer code for E\+S\+P8266
\begin{DoxyItemize}
\item Device layer
\begin{DoxyItemize}
\item \hyperlink{diskio_8c}{diskio.\+c}
\item \hyperlink{diskio_8h}{diskio.\+h}
\end{DoxyItemize}
\item M\+MC Code for SD cards
\begin{DoxyItemize}
\item \hyperlink{mmc_8c}{mmc.\+c}
\item \hyperlink{mmc_8h}{mmc.\+h}
\end{DoxyItemize}
\item M\+MC Hardware abstraction layer
\begin{DoxyItemize}
\item \hyperlink{mmc__hal_8c}{mmc\+\_\+hal.\+c}
\item \hyperlink{mmc__hal_8h}{mmc\+\_\+hal.\+h}
\end{DoxyItemize}
\end{DoxyItemize}

fatfs.\+sup -\/ My P\+O\+S\+IX wrappers for Fat\+FS and user interface code
\begin{DoxyItemize}
\item \hyperlink{fatfs_8h}{fatfs.\+h}
\begin{DoxyItemize}
\item Master include file for all Fat\+FS headers
\end{DoxyItemize}
\item Fat\+FS support functions
\begin{DoxyItemize}
\item \hyperlink{fatfs__sup_8c}{fatfs\+\_\+sup.\+c}
\item \hyperlink{fatfs__sup_8h}{fatfs\+\_\+sup.\+h}
\end{DoxyItemize}
\item User tests and commands
\begin{DoxyItemize}
\item fatfs\+\_\+utils.\+c
\item fatfs\+\_\+utils.\+h
\end{DoxyItemize}
\item My P\+O\+S\+IX wrappers for fatfs
\begin{DoxyItemize}
\item \hyperlink{posix_8c}{posix.\+c} -\/ provides a P\+O\+S\+IX interface for Fat\+FS -\/ Linux file I/O wrappers
\item \hyperlink{posix_8h}{posix.\+h}
\end{DoxyItemize}
\end{DoxyItemize}

fonts -\/ B\+DF Font conversion code
\begin{DoxyItemize}
\item \hyperlink{bdffont2c_8c}{bdffont2c.\+c}
\begin{DoxyItemize}
\item Convert B\+DF fonts to C structures main program
\end{DoxyItemize}
\item \hyperlink{bdffontutil_8c}{bdffontutil.\+c}
\item \hyperlink{bdffontutil_8h}{bdffontutil.\+h}
\begin{DoxyItemize}
\item B\+DF fonts to C support code
\end{DoxyItemize}
\item \hyperlink{bdfview_8c}{bdfview.\+c}
\begin{DoxyItemize}
\item A\+S\+C\+II previewer to test B\+DF display code
\end{DoxyItemize}
\item font.\+h
\begin{DoxyItemize}
\item Font data structure definitions
\end{DoxyItemize}
\item \hyperlink{fonts_8h}{fonts.\+h}
\begin{DoxyItemize}
\item Converted fonts as C structures
\end{DoxyItemize}
\item Makefile
\begin{DoxyItemize}
\item Make file to build selected fonts into a C structure
\end{DoxyItemize}
\item docs
\begin{DoxyItemize}
\item B\+DF font specs
\end{DoxyItemize}
\item fixed
\begin{DoxyItemize}
\item ucs-\/fonts.\+tar.\+gz
\item Unicode versions of the X11 \char`\"{}misc-\/fixed-\/$\ast$\char`\"{} fonts
\item Markus Kuhn, etc
\end{DoxyItemize}
\item fonts
\begin{DoxyItemize}
\item Rockbox Font Collection -\/ www.\+rockbox.\+org
\item Reorganized into three directories
\begin{DoxyItemize}
\item C -\/ constant size fonts
\item P -\/ Proportional size fonts
\item O -\/ Other
\end{DoxyItemize}
\end{DoxyItemize}
\item freefont
\begin{DoxyItemize}
\item Freefont fonts www.\+gnu.\+org/software/freefont
\end{DoxyItemize}
\end{DoxyItemize}

html -\/ A working web site with files that can be put on an SD card
\begin{DoxyItemize}
\item Used for testing \hyperlink{web_8c}{web.\+c}
\end{DoxyItemize}

include
\begin{DoxyItemize}
\item \hyperlink{user__config_8h}{user\+\_\+config.\+h}
\begin{DoxyItemize}
\item Master include and config header
\end{DoxyItemize}
\item \hyperlink{spi__register_8h}{spi\+\_\+register.\+h}
\begin{DoxyItemize}
\item From Expressif
\end{DoxyItemize}
\item uart\+\_\+register.\+h
\begin{DoxyItemize}
\item From Expressif
\end{DoxyItemize}
\end{DoxyItemize}

ld -\/ Linker scripts


\begin{DoxyItemize}
\item lib -\/ time, R\+TC and timer functions
\begin{DoxyItemize}
\item Matrix functions
\begin{DoxyItemize}
\item used for N point least squares screen calibration functions
\item \hyperlink{matrix_8c}{matrix.\+c}
\item \hyperlink{matrix_8h}{matrix.\+h}
\end{DoxyItemize}
\item P\+O\+S\+IX time functions
\begin{DoxyItemize}
\item \hyperlink{time_8h}{time.\+h}
\item \hyperlink{time_8c}{time.\+c}
\end{DoxyItemize}
\item Simple timers and tasks
\begin{DoxyItemize}
\item \hyperlink{timer_8h}{timer.\+h}
\item \hyperlink{timer_8c}{timer.\+c}
\end{DoxyItemize}
\item timer hardware abstraction layer
\begin{DoxyItemize}
\item timer\+\_\+hal.\+h
\item \hyperlink{timer__hal_8c}{timer\+\_\+hal.\+c} -\/ timer hardware abstraction layer
\end{DoxyItemize}
\item implementation of some P\+O\+S\+IX ctype and string functions
\begin{DoxyItemize}
\item string.\+c
\item string.\+h
\end{DoxyItemize}
\item Generic ring buffer support code
\begin{DoxyItemize}
\item \hyperlink{queue_8c}{queue.\+c}
\item \hyperlink{queue_8h}{queue.\+h}
\end{DoxyItemize}
\end{DoxyItemize}
\item network -\/ Simple network server
\begin{DoxyItemize}
\item displays message sent by \hyperlink{send_8c}{send.\+c}
\begin{DoxyItemize}
\item \hyperlink{network_8c}{network.\+c}
\item \hyperlink{network_8h}{network.\+h}
\end{DoxyItemize}
\end{DoxyItemize}
\item printf My small printf with floating support, misc I/O functions
\begin{DoxyItemize}
\item Build and test printf
\begin{DoxyItemize}
\item Makefile
\end{DoxyItemize}
\item Number I/O function
\begin{DoxyItemize}
\item \hyperlink{mathio_8c}{mathio.\+c}
\item \hyperlink{mathio_8h}{mathio.\+h}
\end{DoxyItemize}
\item printf function with user defined output function -\/ for strings, files or devices
\begin{DoxyItemize}
\item \hyperlink{printf_8c}{printf.\+c}
\end{DoxyItemize}
\item Simple scanf
\begin{DoxyItemize}
\item \hyperlink{sscanf_8c}{sscanf.\+c}
\end{DoxyItemize}
\item Test functions for \hyperlink{printf_8c}{printf.\+c} that can be run under Linux to verify results
\begin{DoxyItemize}
\item \hyperlink{test__printf_8c}{test\+\_\+printf.\+c}
\end{DoxyItemize}
\end{DoxyItemize}
\item server -\/ Receive network message and display on ili9341 display
\begin{DoxyItemize}
\item \hyperlink{server_8c}{server.\+c}
\item \hyperlink{server_8h}{server.\+h}
\end{DoxyItemize}
\item user -\/ Main user demo task
\begin{DoxyItemize}
\item Initializes E\+S\+P8266 and sets up demo with 4 active windows with independent attributes
\begin{DoxyItemize}
\item \hyperlink{user__main_8c}{user\+\_\+main.\+c}
\end{DoxyItemize}
\end{DoxyItemize}
\item vfont -\/ Vector font generator code
\begin{DoxyItemize}
\item Based on \href{https://github.com/donbright/font_to_svg}{\tt https\+://github.\+com/donbright/font\+\_\+to\+\_\+svg}
\begin{DoxyItemize}
\item L\+I\+C\+E\+N\+SE
\item R\+E\+A\+D\+M\+E.\+md
\item Makefile -\/ build vfont Creates Vector outline fonts saved in ../display/vfonts.h
\item vfont.\+cpp -\/ Create C structure of T\+TF font
\item vfont.\+hpp -\/ modified verision of font\+\_\+to\+\_\+svg.\+hpp that outputs C structure data
\end{DoxyItemize}
\end{DoxyItemize}
\item web -\/ Web server with F\+AT file system SD C\+A\+RD support
\begin{DoxyItemize}
\item Features
\begin{DoxyItemize}
\item \hyperlink{web_8c}{web.\+c}
\item \hyperlink{web_8h}{web.\+h}
\end{DoxyItemize}
\item Served files can be A\+NY S\+I\+Z\+E!
\begin{DoxyItemize}
\item C\+GI files can have an extension of\+: html,htm,text,txt,cgi
\item C\+GI results can be A\+NY S\+I\+ZE
\end{DoxyItemize}
\item Only tokens of the form  token \+\_\+@ are replaced by the rewrite function
\begin{DoxyItemize}
\item \begin{DoxySeeAlso}{See also}
\hyperlink{web_8c_abfb5be0ab21dfe56bc934a8965154384}{rewrite\+\_\+cgi\+\_\+token()} in \hyperlink{web_8c}{web.\+c}
\end{DoxySeeAlso}

\end{DoxyItemize}
\item Uses yield function to continue background tasks while serving requests
\item Applications
\begin{DoxyItemize}
\item I created a door sign status display that can be updated via a web page web page running on the esp8266
\item Copy the file html/msg.\+cgi to the root folder of a fat32 SD card and modify to suit your needs.
\item Use\+: open a web browser to the web server running on the esp8266
\begin{DoxyItemize}
\item See the Video
\item For example\+: \href{http://192.168.200.116/msg.cgi}{\tt http\+://192.\+168.\+200.\+116/msg.\+cgi}
\item You can update status and return time information on the T\+FT display by entering information on the page.
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\item wire -\/ Wireframe viewer code -\/ uses C\+O\+R\+D\+IC
\begin{DoxyItemize}
\item Wireframe viewer
\begin{DoxyItemize}
\item \hyperlink{wire_8c}{wire.\+c}
\item \hyperlink{wire_8h}{wire.\+h}
\end{DoxyItemize}
\item Cube data
\begin{DoxyItemize}
\item \hyperlink{cube__data_8h}{cube\+\_\+data.\+h}
\end{DoxyItemize}
\item Wireframe E\+A\+R\+TH data
\begin{DoxyItemize}
\item \hyperlink{earth__data_8h}{earth\+\_\+data.\+h}
\end{DoxyItemize}
\end{DoxyItemize}
\item xpt2046 -\/ touch screen code
\begin{DoxyItemize}
\item Serial commands\+: calibrate N
\begin{DoxyItemize}
\item N = 0 .. 3 for screen rotaion to set and calibrate
\item uses 5 point calibration method -\/ see \hyperlink{matrix_8c}{matrix.\+c}
\end{DoxyItemize}
\item Serial commands\+: calibrate\+\_\+test 1
\begin{DoxyItemize}
\item N = 0 .. 3 for screen rotaion to set and calibrate
\item uses 5 point calibration method -\/ see \hyperlink{matrix_8c}{matrix.\+c}
\item runs calibration demo to show accuracy of calibration
\end{DoxyItemize}
\item T\+O\+DO store and read back values
\item \hyperlink{calibrate_8c}{calibrate.\+c}
\item \hyperlink{calibrate_8h}{calibrate.\+h}
\item \hyperlink{xpt2046_8c}{xpt2046.\+c}
\item \hyperlink{xpt2046_8h}{xpt2046.\+h}
\end{DoxyItemize}
\item yield -\/ Yield code from Arduino yield code
\begin{DoxyItemize}
\item R\+E\+A\+D\+M\+E.\+txt
\item Context switch code
\begin{DoxyItemize}
\item cont.\+S
\item \hyperlink{cont_8h}{cont.\+h}
\item \hyperlink{cont__util_8c}{cont\+\_\+util.\+c}
\item \hyperlink{ets__sys_8h}{ets\+\_\+sys.\+h}
\end{DoxyItemize}
\item Main user\+\_\+init and task replacement with yield support
\begin{DoxyItemize}
\item \hyperlink{user__task_8c}{user\+\_\+task.\+c}
\item \hyperlink{user__task_8h}{user\+\_\+task.\+h}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}

\begin{DoxyParagraph}{Connections}
\begin{DoxyVerb}* ESP8266           
  * MISO/GPIO12 
  * MOSI/GPIO13
  * CLK/GPIO14
  * CHIP_EN ---1K--- VCC3.3V
  * CH_PD   ---1K--- VCC3.3V
  * REST    ---1K--- VCC3.3V   Ground REST to reset ESP8266 and ILI9341
  * GPIO  2 ---1K--- VCC3.3V
  * GPIO  0 ---1K--- VCC3.3V   Ground GPIO 0 to to enable flashing
  * GPIO 15 ---1K--- GND       Need pull down for boot
  * GPIO 14 ---1K--- GND       Keeps floating pins from generating false clocks on attached devices
  * GND ------------ GND
  * T_OUT ------ +            T_OUT is connected to varaible VR100K 
                 | 
    VCC--330K--VR100K-- GND   Variable VR100K is connected to 330K then VCC
                              Max voltage to T_OUT pin is VCC * 100K / (330K+100K)

* FTDI232 USB/TTL      ESP8266 
  * TXD ----1K--------  RXD
  * RXD --------------  TXD
  * RTS ---|<--------- REST    Optional - Diode with Cathode to RTS, Anode to ESP8266 Reset
  * DTR ---|<----1K--- GPIO 00 Optional - Diode with cathode to DTR, Anode to 1K to ESP8266 GPIO00 for flashing
  * GND --------------  GND
  * Note: if you use the optional DTR,RTS conneections you have to use miniterm script provided
    recommend using jumpers to anable this feature if you do not wish to have the ESP8266 reset automatically

* xpt2046        ESP8266
  * MOSI   MOSI  GPIO 13
  * MISO   MISO  GPIO 12
  * SCK    CLK   GPIO 14 
  * CS           GPIO 02

* ILI9341        ESP8266
  * Data/Command GPIO 05 (see io.c and SWAP45 in Makefile - my pin lables are backwards!)
  * CS           GPIO 15 (see io.c)
  * SDI    MOSI  GPIO 13
  * SDO    MISO  GPIO 12
  * SCK    CLK   GPIO 14 
  * RST    REST  RESET
  * VCC          VCC3.3V
  * GND          GND

* MMC/SD reader  ESP8266
  * D3/CS        GPIO 04 (see io.c and SWAP45 in Makefile - my pin lables are backwards!)
  * CMD/DI MOSI  GPIO 13
  * D0     MISO  GPIO 12
  * CLK    CLK   GPIO 14
  * VCC          VCC3.3V
  * GND          GND

* ADF4351        ESP8266
  * LE           GPIO 00 (see io.c)
  * DATA   MOSI  GPIO 13
  * CLK     CLK  GPIO 14
  * MUXOUT            NC
  * CE                NC
  * VCC          VCC3.3V
  * GND          GND
\end{DoxyVerb}

\end{DoxyParagraph}
\begin{DoxyParagraph}{Demo Video}

\begin{DoxyItemize}
\item See \hyperlink{web_8c}{web.\+c} for details.
\begin{DoxyItemize}
\item I created a door status display that can be updated via a web page web page
\item I did a status update while recording the video
\item Result\+: \href{https://github.com/magore/esp8266_ili9341/blob/master/video.mp4?raw=true}{\tt https\+://github.\+com/magore/esp8266\+\_\+ili9341/blob/master/video.\+mp4?raw=true}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Demo Images}

\begin{DoxyItemize}
\item Running demo and sending a message to the network window
\item \char`\"{}./send -\/i 192.\+168.\+200.\+116 -\/m \textquotesingle{}testing\textbackslash{}n\+Test3\textbackslash{}nscrolling\textbackslash{}ntext\textbackslash{}n1\textbackslash{}n2\textquotesingle{}\char`\"{}
\begin{DoxyItemize}
\item Diagnostics from send ip\+:192.\+168.\+200.\+116, port\+:31415, message\+: testing Test3 scrolling text 1 2 Host name\+: 192.\+168.\+200.\+116
\begin{DoxyItemize}
\item Result\+:  
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyParagraph}
